package com.healthcloud.service;

import com.healthcloud.entity.SysConfigEntity;
import com.healthcloud.utils.PageParam;

import java.util.List;
import java.util.Map;

/**
 *
 * 系统配置信息
 *
 * Created by yu on 2017/6/6.
 */
public interface SysConfigService {

    /**
     * 保存配置信息
     */
    public void save(SysConfigEntity config);

    /**
     * 更新配置信息
     */
    public void update(SysConfigEntity config);

    /**
     * 根据key，更新value
     */
    public void updateValueByKey(String key, String value);

    /**
     * 删除配置信息
     */
    public void deleteBatch(Long[] ids);

    /**
     * 获取List列表
     */
    public List<SysConfigEntity> queryList(SysConfigEntity entity,PageParam pageParam);
    /**
     * 获取总记录数
     */
    public int queryTotal(SysConfigEntity entity);

    public SysConfigEntity queryObjectByid(Long id);

    /**
     * 根据key，获取配置的value值
     *
     * @param key           key
     * @param defaultValue  缺省值
     */
    public String getValue(String key, String defaultValue);

    /**
     * 根据key，获取value的Object对象
     * @param key    key
     * @param clazz  Object对象
     */
    public <T> T getConfigObject(String key, Class<T> clazz);
    /**
     * 根据name获取列表
     * @param name
     * @return
     */
	public List<SysConfigEntity> queryListByName(String name);

	/**
	 * 根据name和key获取对象
	 * @param name
	 * @return
	 */
	public SysConfigEntity queryByNameAndKey(String name, String key);


    List<SysConfigEntity> queryByNameAndRemarkByConfigName(SysConfigEntity entity,PageParam pageParam);

    int countByNameAndRemarkByConfigName(SysConfigEntity entity);
}
